-- CALC_GOLD_ALTAR_ARGS

-- 计算金色祭坛参数
return function(args, layer)
    -- 金色祭坛，需要抽取技能
    local allSkills  = ME.user:getSkillsOption();
    local toLearn    = SkillM.filterToLearnSkills(allSkills);   -- 英雄尚未学过的技能
    local rand;                                                 -- 获取随机种子
    local ret = {};

    -- 获取地牢难度系数
    local dugeonId = DungeonM.getDungeonId();
    if dugeonId == nil then
        dugeonId = user.dbase:query("currentDungeon");
    end
    local layerFix = DungeonAreaM.query(dugeonId, "layer_fix");
    
    local value = FormulaM.invoke("CALC_SEARCH_POINT_COST", 50, layer, layerFix);

    local cost;

    -- 可携带技能没满，且有可以学习的技能
    if SKILL_OPTION_NUM > #allSkills and #toLearn > 0 then
        rand = DungeonM.getRandSeed("GOLD_ALTAR1");

        -- 随机一个学习的技能
        rand = rand % #toLearn + 1;

        cost = { 2, "search_point", value, };
        table.insert(ret, { ["skillId"] = toLearn[rand], ["cost"] = cost, ["isNewSkill"] = true, });
        DungeonLogM.addLog("[CALC_GOLD_ALTAR_ARGS]抽取技能1:" .. toLearn[rand]);
    end


    -- TODO 添加log，用于排查游标不一致的情况
    local str = "";
    for _, id in pairs(allSkills) do
        str = str .. id .. "  "
    end
    DungeonLogM.addLog("[CALC_GOLD_ALTAR_ARGS]all skills :" .. str);

    -- 当前没有可升级的技能，不处理
    allSkills = FormulaM.filterUpgradeSkills(allSkills);
    if #allSkills == 0 then
        -- TODO 添加log，用于排查游标不一致的情况
        DungeonLogM.addLog("[CALC_GOLD_ALTAR_ARGS]当前没有可升级的技能 。");
        return ret;
    end

    -- 升级已经学会的技能
    cost    = { 2, "search_point", value, };
    rand = DungeonM.getRandSeed("GOLD_ALTAR2");              -- 获取随机种子
    -- 随机一个已经学会的技能
    rand = rand % #allSkills + 1;

    table.insert(ret, { ["skillId"] = allSkills[rand], ["cost"] = cost, ["isNewSkill"] = false,});

    DungeonLogM.addLog("[CALC_GOLD_ALTAR_ARGS]抽取技能2:" .. allSkills[rand]);
    return ret;
end